#!/bin/sh -e

export DESTDIR="$1"

# Force a static build so shared library breakage does not also break the
# linker (and therefore the ability to recover from the issue).
# XXX: Static linking prevents mold from using dlopen() which is required
# for performing LTO.
# export LDFLAGS="$LDFLAGS -static"

patch -p1 < amd64_only.patch

cmake -B build \
    -DCMAKE_INSTALL_PREFIX=/usr \
    -DCMAKE_INSTALL_LIBDIR=lib

cmake --build   build
cmake --install build

# Create a symbolic link so users can use mold as the linker system-wide
# (without need for special CFLAGS/CXXFLAGS).
ln -s mold "$1/usr/bin/ld"

# To tell GCC to use mold we must put a symlink to it in a directory and set it
# to search for the linker within.
ln -s ../../bin/mold "$1/usr/lib/mold/ld"
